<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
    public function __construct(){
        parent::__construct();
        $this->session->set_userdata('componente','login');
        $this->load->model('Login_Model');
    }
    public function index(){
        if(!$this->session->userdata('componente')){
            echo "Componente indefinido!";
        }
        else{
            $componente = $this->session->userdata('componente').'_view'; 
            $this->load->view($componente);
        }
    }
    function valida() {   
        if( $this->input->post('auth')){
            $config = array(
                array(
                'field' => 'login', 
                'label' => 'Login', 
                'rules' => 'trim|required|xss_clean'), 
                array(
                'field' => 'pass',
                'label' => 'Senha',
                'rules' => 'trim|required|xss_clean|callback__authenticate_user')
            );            
            $this->form_validation->set_rules($config);           
            if ($this->form_validation->run($this) != FALSE){
                $session_data = array(
                'idusuario' => $this->Login_Model->idusuario,
                'nome'      => $this->Login_Model->nome,
                'perfil'    => $this->Login_Model->perfil,
                'logged_in' => TRUE
                );
                $this->session->set_userdata($session_data);
                header("location:".base_url()."calendario/");
            } 
        }
        echo 'Verificar dados de Login!';
        $componente = $this->session->userdata('componente').'_view'; 
        $this->load->view($componente, ucwords($this->session->userdata('componente')));
    }
    function logout(){
        $this->session->sess_destroy();
        redirect('/');
    }
    function _authenticate_user($pass){
        $login = strtolower($this->input->post('login'));
        $usuario = $this->Login_Model->findUsuarioByLogin($login);
        if($usuario != null && $usuario->senha == $pass && $usuario->ativo != false) {
            return true;
        }else { 
            return false;
        } 
    } 
    function alteraSenha(){        
        if($this->input->post('pass1') !== $this->input->post('pass2') || $this->input->post('pass1') == ""){            
            echo "As senhas digitadas não conferem.";
        }
        else{        
            if($this->Login_Model->alteraSenha(array('senha'=>md5($this->input->post('pass1'))))){
                echo "Senha alterada com Sucesso";
            }else{
                echo "Houve algum erro ao tentar alterar a senha. Tente novamente!";
            }
        }
    }
}